{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true,
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import jieba\n",
    "import gensim\n",
    "import matplotlib.pyplot as plt\n",
    "import re\n",
    "from gensim.models import KeyedVectors\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [],
   "source": [
    "cn_model = KeyedVectors.load_word2vec_format(\"Chinese-Word-Vectors-master/sgns.zhihu.bigram\"\n",
    "                                             ,binary=False)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "词向量的长度:300\n"
     ]
    }
   ],
   "source": [
    "embedding_dim = cn_model['山东大学'].shape[0]\n",
    "print('词向量的长度:{}'.format(embedding_dim))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.56464815\n",
      "[('高中', 0.724782407283783), ('本科', 0.676853597164154), ('研究生', 0.6244412660598755), ('中学', 0.6088204979896545), ('大学本科', 0.5959086418151855), ('初中', 0.5883588790893555), ('读研', 0.5778335928916931), ('职高', 0.5767995715141296), ('大学毕业', 0.5767451524734497), ('师范大学', 0.5708829164505005)]\n",
      "不同的词为:老人\n"
     ]
    }
   ],
   "source": [
    "# 计算相似度\n",
    "print(cn_model.similarity(\"小学\", \"大学\"))\n",
    "# 找出最相近的词\n",
    "print(cn_model.most_similar(positive=['大学'], topn=10))\n",
    "# 找出不同的词\n",
    "test_words = '老师 会计师 程序员 律师 医生 老人'\n",
    "test_words_result = cn_model.doesnt_match(test_words.split())\n",
    "print('不同的词为:' + test_words_result)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "样本样例数目：2000\n",
      "2000\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "\n",
    "pos_txts = os.listdir('Chinese-Word-Vectors-master/ChnSentiCorp_htl_ba_2000/pos')\n",
    "neg_txts = os.listdir('Chinese-Word-Vectors-master/ChnSentiCorp_htl_ba_2000/neg')\n",
    "print('样本样例数目：' + str(len(pos_txts) + len(neg_txts)))\n",
    "\n",
    "# 现在我们把所有的评价内容放到一个list中\n",
    "train_texts_orig = []  # 存储所有评价，每个评价为一条string\n",
    "# 前1000条为正面评价  后1000条为负面评价\n",
    "for i in range(len(pos_txts)):\n",
    "    with open('Chinese-Word-Vectors-master/ChnSentiCorp_htl_ba_2000/pos/' + pos_txts[i], 'r', errors='ignore') as f:\n",
    "        text = f.read().strip()\n",
    "        train_texts_orig.append(text)\n",
    "        f.close()\n",
    "for i in range(len(neg_txts)):\n",
    "    with open('Chinese-Word-Vectors-master/ChnSentiCorp_htl_ba_2000/neg/' + neg_txts[i], 'r', errors='ignore') as f:\n",
    "        text = f.read().strip()\n",
    "        train_texts_orig.append(text)\n",
    "        f.close()\n",
    "print(len(train_texts_orig))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [],
   "source": [
    "# 然后我们使用TensorFlow 的keras 来建模\n",
    "from tensorflow.python.keras.models import Sequential\n",
    "from tensorflow.python.keras.layers import Dense, GRU, Embedding, LSTM, Bidirectional\n",
    "from tensorflow.python.keras.preprocessing.text import Tokenizer\n",
    "from tensorflow.python.keras.preprocessing.sequence import pad_sequences\n",
    "from tensorflow.python.keras.optimizers import RMSprop\n",
    "from tensorflow.python.keras.optimizers import Adam\n",
    "from tensorflow.python.keras.callbacks import EarlyStopping, ModelCheckpoint, TensorBoard, ReduceLROnPlateau"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "71.824\n",
      "max:642\n",
      "选择max_tokens=>226\n",
      "0.95\n"
     ]
    }
   ],
   "source": [
    "# 开始分词  和索引化\n",
    "# 得到所有的索引\n",
    "train_tokens = []\n",
    "for text in train_texts_orig:\n",
    "    # 去掉标点\n",
    "    text = re.sub(\"[\\s+\\.\\!\\/_,$%^*(+\\\"\\']+|[+——！，。？、~@#￥%……&（）]+\", \"\", text)\n",
    "    # jieba 分词\n",
    "    cut = jieba.cut(text)\n",
    "    # jieba分词的输出结果为一个生成器\n",
    "    # 把生成器转换为list\n",
    "    cut_list = [i for i in cut]\n",
    "    for i, word in enumerate(cut_list):\n",
    "        try:\n",
    "            # 将词转换为索引index\n",
    "            cut_list[i] = cn_model.vocab[word].index\n",
    "        except KeyError:\n",
    "            # 如果词不在字典中，则存入为0\n",
    "            cut_list[i] = 0\n",
    "    train_tokens.append(cut_list)\n",
    "# 获得所有tokens的长度\n",
    "# 因为所有的索引的长度不一致 我们需要把这些一致化一下\n",
    "num_tokens = [len(tokens) for tokens in train_tokens]\n",
    "num_tokens = np.array(num_tokens)\n",
    "# 平均token长度\n",
    "print(np.mean(num_tokens))\n",
    "# 最长的评价token的长度\n",
    "print(\"max:\"+str(np.max(num_tokens)))\n",
    "# 我们取tokens平均值+两个tokens的标准差\n",
    "# 假设tokens长度的分布为正态分布，则max_tokens这个值就可以涵盖95%的置信区间了\n",
    "max_tokens = np.mean(num_tokens) + 2 * np.std(num_tokens)\n",
    "max_tokens = int(max_tokens)\n",
    "print(\"选择max_tokens=>\"+str(max_tokens))\n",
    "\n",
    "# 我们取max_tokens长度的时候 看一下有多少样本被涵盖\n",
    "# 我们对长度不足的进行padding,对长度过长的进行修剪\n",
    "print(np.sum(num_tokens < max_tokens) / len(num_tokens))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "距离川沙公路但是公交指示不对如果是的话会非常麻烦建议用别的路线房间较为简单\n",
      "初始字段：距离川沙公路较近,但是公交指示不对,如果是\"蔡陆线\"的话,会非常麻烦.建议用别的路线.房间较为简单.\n"
     ]
    }
   ],
   "source": [
    "# 然后我们进行反索引化\n",
    "# 把索引转换为可阅读的文本\n",
    "def reverse_tokens(tokens):\n",
    "    text = ''\n",
    "    for i in tokens:\n",
    "        if i != 0:\n",
    "            text = text + cn_model.index2word[i]\n",
    "        else:\n",
    "            text = text + ''\n",
    "    return text\n",
    "\n",
    "\n",
    "reverse = reverse_tokens(train_tokens[0])\n",
    "print(reverse)\n",
    "print(\"初始字段：\"+train_texts_orig[0])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "300\n",
      "(50000, 300)\n"
     ]
    }
   ],
   "source": [
    "'''\n",
    "我们准备Embedding Matrix\n",
    "现在我们来为模型准备embedding matrix（词向量矩阵），根据keras，我们需要准备一个维度为\n",
    "(numwords,embeddingdim) 的矩阵，\n",
    "num words代表我们使用的词汇的数量，\n",
    "emdeddingdim 在我们现在使用的预训练模型向量模型中的是300，每一个词汇都使用一个长度为300的\n",
    "向量表示\n",
    "\n",
    "'''\n",
    "num_words = 50000\n",
    "# 初始化embedding_matrix\n",
    "embedding_matrix = np.zeros((num_words, embedding_dim))\n",
    "# embedding_matrix 为一个[num_words，embedding_dim] 的矩阵\n",
    "# 维度50000*300\n",
    "for i in range(num_words):\n",
    "    embedding_matrix[i, :] = cn_model[cn_model.index2word[i]]\n",
    "embedding_matrix = embedding_matrix.astype('float32')\n",
    "\n",
    "# 检查index是否对应\n",
    "# 输出300意义为长度300的embedding向量一一对应\n",
    "print(np.sum(cn_model[cn_model.index2word[333]] == embedding_matrix[333]))\n",
    "\n",
    "print(embedding_matrix.shape)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[    0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0     0     0\n",
      "     0     0     0     0     0     0     0     0     0     0   175    72\n",
      "     1  1845   312  8241     1 23216  1487  5249   175    72 31569     1\n",
      "     0   158  1049 14035   143   115    66     4   259 14862 10395    78\n",
      "   714   209 10395     1   345  1487     1   949   175   710]\n",
      "不错的酒店装修和风格都很好是郑州最好的酒店了可惜没有时间好好住因为是晚上到了都了早上又开车走了所以只觉得房间很舒服早餐很好吃哈哈哈哈\n",
      "class:  1.0\n"
     ]
    }
   ],
   "source": [
    "# padding填充  和 truncating 修剪\n",
    "'''\n",
    "我们把文本转换为tokens索引之后，每一串索引的长度并不相等，所以为了方便模型的训练 我们需要把所有的长度\n",
    "标准化，上面我们选择了236这个可以覆盖95%的训练样本的长度,接下来我们进行padding 和 truncating，我们一般\n",
    "采用'pre'的方法，这回在文本索引的前面填充0，因为根据一些研究资料中的实践，如果在后面填充0的话会造成不好的影响\n",
    "'''\n",
    "# 进行padding  和 truncating，输入的train_tokens 是 一个list\n",
    "# 返回的train_pad 是一个numpy array\n",
    "train_pad = pad_sequences(train_tokens, maxlen=max_tokens,\n",
    "                          padding='pre', truncating='pre')\n",
    "# 超出5万个词向量的词 用0代替\n",
    "train_pad[train_pad >= num_words] = 0\n",
    "# 可见padding之后前面的tokens全变为0，文本在最后\n",
    "print(train_pad[33])\n",
    "\n",
    "# 准备target向量\n",
    "train_target = np.concatenate((np.ones(1000), np.zeros(1000)))\n",
    "# 进行训练和测试的分割\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(train_pad,\n",
    "                                                    train_target,\n",
    "                                                    test_size=0.1,\n",
    "                                                    random_state=12)\n",
    "# 查看训练样本 确认\n",
    "print(reverse_tokens(X_train[35]))\n",
    "print('class: ', y_train[35])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From D:\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\ops\\resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "embedding (Embedding)        (None, 226, 300)          15000000  \n",
      "_________________________________________________________________\n",
      "bidirectional (Bidirectional (None, 226, 64)           85248     \n",
      "_________________________________________________________________\n",
      "lstm_1 (LSTM)                (None, 16)                5184      \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 1)                 17        \n",
      "=================================================================\n",
      "Total params: 15,090,449\n",
      "Trainable params: 90,449\n",
      "Non-trainable params: 15,000,000\n",
      "_________________________________________________________________\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "# 开始搭建LSTM模型\n",
    "\n",
    "model = Sequential()\n",
    "model.add(Embedding(num_words, embedding_dim, weights=[embedding_matrix],\n",
    "                    input_length=max_tokens, trainable=False))\n",
    "model.add(Bidirectional(LSTM(units=32, return_sequences=True)))\n",
    "model.add(LSTM(units=16, return_sequences=False))\n",
    "\n",
    "model.add(Dense(1, activation='sigmoid'))\n",
    "optimizer = Adam(lr=1e-3)\n",
    "model.compile(loss='binary_crossentropy',\n",
    "              optimizer=optimizer,\n",
    "              metrics=['accuracy'])\n",
    "print(model.summary())"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unable to open file (unable to open file: name = 'sentiment_checkpoint.keras', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)\n",
      "Train on 1620 samples, validate on 180 samples\n",
      "WARNING:tensorflow:From D:\\Anaconda3\\lib\\site-packages\\tensorflow\\python\\ops\\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Epoch 1/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.6481 - acc: 0.6543 \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00001: val_loss improved from inf to 0.58691, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 14s 9ms/sample - loss: 0.6474 - acc: 0.6556 - val_loss: 0.5869 - val_acc: 0.7222\n",
      "Epoch 2/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.5174 - acc: 0.7786\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00002: val_loss improved from 0.58691 to 0.45350, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 11s 7ms/sample - loss: 0.5162 - acc: 0.7778 - val_loss: 0.4535 - val_acc: 0.8222\n",
      "Epoch 3/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.4267 - acc: 0.8236\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00003: val_loss improved from 0.45350 to 0.39757, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.4249 - acc: 0.8253 - val_loss: 0.3976 - val_acc: 0.8333\n",
      "Epoch 4/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.3634 - acc: 0.8548 \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00004: val_loss improved from 0.39757 to 0.35085, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 8ms/sample - loss: 0.3627 - acc: 0.8556 - val_loss: 0.3509 - val_acc: 0.8667\n",
      "Epoch 5/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.3489 - acc: 0.8535\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00005: val_loss did not improve from 0.35085\n",
      "\n",
      "Epoch 00005: ReduceLROnPlateau reducing learning rate to 0.00010000000474974513.\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.3478 - acc: 0.8543 - val_loss: 0.4342 - val_acc: 0.8000\n",
      "Epoch 6/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.3131 - acc: 0.8848\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00006: val_loss improved from 0.35085 to 0.32246, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.3101 - acc: 0.8864 - val_loss: 0.3225 - val_acc: 0.8833\n",
      "Epoch 7/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2731 - acc: 0.9076 \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00007: val_loss improved from 0.32246 to 0.32031, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.2692 - acc: 0.9080 - val_loss: 0.3203 - val_acc: 0.8944\n",
      "Epoch 8/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2615 - acc: 0.9062\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00008: val_loss improved from 0.32031 to 0.31753, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.2584 - acc: 0.9080 - val_loss: 0.3175 - val_acc: 0.8944\n",
      "Epoch 9/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2501 - acc: 0.9141 \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00009: val_loss improved from 0.31753 to 0.31575, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.2492 - acc: 0.9142 - val_loss: 0.3157 - val_acc: 0.8944\n",
      "Epoch 10/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2449 - acc: 0.9186\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00010: val_loss improved from 0.31575 to 0.31362, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.2433 - acc: 0.9185 - val_loss: 0.3136 - val_acc: 0.8889\n",
      "Epoch 11/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2327 - acc: 0.9199\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00011: val_loss improved from 0.31362 to 0.30955, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.2349 - acc: 0.9191 - val_loss: 0.3095 - val_acc: 0.8833\n",
      "Epoch 12/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2293 - acc: 0.9258\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00012: val_loss improved from 0.30955 to 0.30597, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.2303 - acc: 0.9228 - val_loss: 0.3060 - val_acc: 0.8944\n",
      "Epoch 13/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2247 - acc: 0.9271\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00013: val_loss did not improve from 0.30597\n",
      "\n",
      "Epoch 00013: ReduceLROnPlateau reducing learning rate to 1.0000000474974514e-05.\n",
      "1620/1620 [==============================] - 11s 7ms/sample - loss: 0.2256 - acc: 0.9259 - val_loss: 0.3061 - val_acc: 0.8944\n",
      "Epoch 14/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2224 - acc: 0.9290\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00014: val_loss improved from 0.30597 to 0.30419, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 12s 7ms/sample - loss: 0.2200 - acc: 0.9302 - val_loss: 0.3042 - val_acc: 0.8944\n",
      "Epoch 15/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2180 - acc: 0.9303 \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00015: val_loss improved from 0.30419 to 0.30380, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 11s 7ms/sample - loss: 0.2191 - acc: 0.9309 - val_loss: 0.3038 - val_acc: 0.8944\n",
      "Epoch 16/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2162 - acc: 0.9336\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00016: val_loss improved from 0.30380 to 0.30336, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 11s 7ms/sample - loss: 0.2186 - acc: 0.9309 - val_loss: 0.3034 - val_acc: 0.8944\n",
      "Epoch 17/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2218 - acc: 0.9277\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00017: val_loss improved from 0.30336 to 0.30326, saving model to sentiment_checkpoint.keras\n",
      "\n",
      "Epoch 00017: ReduceLROnPlateau reducing learning rate to 1e-05.\n",
      "1620/1620 [==============================] - 11s 7ms/sample - loss: 0.2179 - acc: 0.9309 - val_loss: 0.3033 - val_acc: 0.8944\n",
      "Epoch 18/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2161 - acc: 0.9329\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00018: val_loss improved from 0.30326 to 0.30310, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 11s 7ms/sample - loss: 0.2174 - acc: 0.9315 - val_loss: 0.3031 - val_acc: 0.8944\n",
      "Epoch 19/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2174 - acc: 0.9310\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00019: val_loss improved from 0.30310 to 0.30295, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 11s 7ms/sample - loss: 0.2169 - acc: 0.9321 - val_loss: 0.3029 - val_acc: 0.8944\n",
      "Epoch 20/20\n",
      "1536/1620 [===========================>..] - ETA: 0s - loss: 0.2177 - acc: 0.9316 \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Epoch 00020: val_loss improved from 0.30295 to 0.30279, saving model to sentiment_checkpoint.keras\n",
      "1620/1620 [==============================] - 11s 7ms/sample - loss: 0.2162 - acc: 0.9321 - val_loss: 0.3028 - val_acc: 0.8944\n",
      "200/200 [==============================] - 3s 13ms/sample - loss: 0.4028 - acc: 0.8250\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n"
     ]
    },
    {
     "ename": "TypeError",
     "evalue": "unsupported format string passed to list.__format__",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mTypeError\u001B[0m                                 Traceback (most recent call last)",
      "\u001B[1;32m<ipython-input-22-dff56127ecb7>\u001B[0m in \u001B[0;36m<module>\u001B[1;34m\u001B[0m\n\u001B[0;32m     29\u001B[0m \u001B[1;31m# 查看训练结果：\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m     30\u001B[0m \u001B[0mresult\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mmodel\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mevaluate\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mX_test\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0my_test\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 31\u001B[1;33m \u001B[0mprint\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;34m'Accuracy:{0:.2%}'\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mformat\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mresult\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m[\u001B[0m\u001B[1;36m1\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m",
      "\u001B[1;31mTypeError\u001B[0m: unsupported format string passed to list.__format__"
     ]
    }
   ],
   "source": [
    "# 建立一个权重的存储点\n",
    "path_checkpoint = 'sentiment_checkpoint.keras'\n",
    "checkpoint = ModelCheckpoint(filepath=path_checkpoint, monitor='val_loss',\n",
    "                             verbose=1, save_weights_only=True,\n",
    "                             save_best_only=True)\n",
    "# 尝试加载已训练模型\n",
    "try:\n",
    "    model.load_weights(path_checkpoint)\n",
    "except Exception as e:\n",
    "    print(e)\n",
    "# 定义early stopping 如果3个epoch内validation loss没有改善则停止训练\n",
    "early_stopping = EarlyStopping(monitor='val_loss', patience=3, verbose=1)\n",
    "# 自动降低learning rate\n",
    "lr_reduction = ReduceLROnPlateau(monitor='val_loss',\n",
    "                                 factor=0.1, min_lr=1e-5, patience=0,\n",
    "                                 verbose=1)\n",
    "# 定义callback函数\n",
    "callback = [\n",
    "    early_stopping,\n",
    "    checkpoint,\n",
    "    lr_reduction\n",
    "]\n",
    "# 开始训练\n",
    "model.fit(X_train, y_train,\n",
    "          validation_split=0.1,\n",
    "          epochs=20,\n",
    "          batch_size=128,\n",
    "          callbacks=callback)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "200/200 [==============================] - 3s 14ms/sample - loss: 0.4028 - acc: 0.8250\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\n",
      "Accuracy:82.50%\n"
     ]
    }
   ],
   "source": [
    "# 查看训练结果：\n",
    "result = model.evaluate(X_test, y_test)\n",
    "print('Accuracy:{0:.2%}'.format(result[1]))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "outputs": [],
   "source": [
    "# 预测我们自己的文本\n",
    "def predict_sentiment(text):\n",
    "    text = re.sub(\"[\\s+\\.\\!\\/_,$%^&*(+\\\"\\']+|[+——！，。？、~@#￥%……&*（）]\", \"\", text)\n",
    "    # 分词\n",
    "    cut = jieba.cut(text)\n",
    "    cut_list = [i for i in cut]\n",
    "    # tokenize\n",
    "    for i,word in enumerate(cut_list):\n",
    "        try:\n",
    "            cut_list[i] = cn_model.vocab[word].index\n",
    "        except KeyError:\n",
    "            cut_list[i]=0\n",
    "    # padding\n",
    "    tokens_pad = pad_sequences([cut_list],maxlen=max_tokens,\n",
    "                               padding='pre',truncating='pre')\n",
    "    # 预测\n",
    "    result = model.predict(x=tokens_pad)\n",
    "    coef = result[0][0]\n",
    "    if coef>=0.5:\n",
    "        print('是一例正面评价','output=%.2f'%coef)\n",
    "    else:\n",
    "        print('是一例负面评价', 'output=%.2f' % coef)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "是一例正面评价 output=0.92\n",
      "是一例正面评价 output=0.90\n",
      "是一例正面评价 output=0.93\n",
      "是一例负面评价 output=0.09\n",
      "是一例正面评价 output=0.95\n",
      "是一例负面评价 output=0.49\n",
      "是一例负面评价 output=0.18\n"
     ]
    }
   ],
   "source": [
    "result_message = [\n",
    "    '衣服质量不错，没想到这个价格可以买到性价比这么高的衣服',\n",
    "    '面料贴身很舒服，不透，穿着大小刚好，很喜欢！',\n",
    "    '满意，做工质量也很好，真心喜欢，价格实惠，快递狠给力，没有任何的问题。',\n",
    "    '闷不透气，穿过一次就不想穿第二次。真的是一份价钱一份货',\n",
    "    '质量好，没有多余的线头，拿着很有分量，不是那种轻薄的裙子，很软很舒服，腰部有弹性正好可以穿下去，只是有点勒勒的，性价比很高，比我在店里买100+的好。',\n",
    "    '我觉得单穿太素了可以配点其他颜色的',\n",
    "    '使用感受：我没使用，送给一个妹子的，她说她还没用 适合肤质：她的皮肤比较黑，黑皮肤适合吗？'\n",
    "    ' 吸收效果：应该不错的吧? 保湿效果：神仙水自不必说 其他特色：不知道送什么给妹子好，纠结了半天选了这个。'\n",
    "    '那天正好她家需要把车库里的东西搬上去，她妈妈打电话给我我就过去了'\n",
    "]\n",
    "for text in result_message:\n",
    "    predict_sentiment(text)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "outputs": [],
   "source": [
    "# 连接elasticsearch 分析 评论数据\n",
    "from elasticsearch import Elasticsearch\n",
    "\n",
    "es = Elasticsearch(\n",
    "    hosts=['127.0.0.1'],\n",
    "    sniff_on_start=True,  # 连接前测试\n",
    "    sniff_on_connection_fail=True,  # 节点无响应时刷新节点\n",
    "    sniff_timeout=60,    # 设置超时时间\n",
    "    ignore=[400, 405, 502]\n",
    ")"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'took': 2, 'timed_out': False, '_shards': {'total': 1, 'successful': 1, 'skipped': 0, 'failed': 0}, 'hits': {'total': {'value': 502, 'relation': 'eq'}, 'max_score': 1.0, 'hits': [{'_index': 'user_message_list', '_type': '_doc', '_id': 'njTU4XMBAWEK-eYnpV1o', '_score': 1.0, '_source': {'content': '宝贝做工很好，剪裁合体，衣服大方，上身很舒适，料子也很好，穿上去特别舒服。', 'goodsId': '70222631638', 'guid': '808401343fa272a10a77d0131cb635a2', 'id': '14522466198', 'nickname': 'j***E', 'referenceTime': '2020-08-11 10:04:01', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'nzTU4XMBAWEK-eYnpV1o', '_score': 1.0, '_source': {'content': '衣服很好看，试穿过了，面料很舒服，摸起来质感很好。款式也很潮流，下水洗了没有掉色，没有任何色差', 'goodsId': '70222631638', 'guid': 'cd629cc8a5714129f7ac9c53a3743abb', 'id': '14522367387', 'nickname': 'j***I', 'referenceTime': '2020-08-11 14:43:56', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}]}}\n"
     ]
    }
   ],
   "source": [
    "#print(es.index(index=\"user_message_list\", doc_type=\"doc\", id='njTU4XMBAWEK-eYnpV1o', body={\"goodsId\": \"70222631638\"}))\n",
    "query={\n",
    "    'from':0,\n",
    "    'size':2\n",
    "}\n",
    "print(es.search(index='user_message_list', doc_type='_doc',body=query))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "outputs": [],
   "source": [
    "def Form_es_to_excel(index_url,size,goodsId):\n",
    "    import csv\n",
    "    from elasticsearch import Elasticsearch\n",
    "    es = Elasticsearch(\n",
    "    hosts=['127.0.0.1'],\n",
    "    sniff_on_start=True,  # 连接前测试\n",
    "    sniff_on_connection_fail=True,  # 节点无响应时刷新节点\n",
    "    sniff_timeout=60,    # 设置超时时间\n",
    "    ignore=[400, 405, 502]\n",
    "    )\n",
    "    query1={\n",
    "        \"size\":size,\n",
    "        \"query\":{\n",
    "            \"match\":{\n",
    "                \"goodsId\":goodsId\n",
    "            }\n",
    "        }\n",
    "    }\n",
    "    query =es.search(index=index_url,doc_type='_doc',scroll='5m',body=query1)\n",
    "    # print(query)\n",
    "    value = query[\"hits\"][\"hits\"]\n",
    "    print(value)\n",
    "    # # es查询出的结果第一页\n",
    "    results = query['hits']['hits']\n",
    "    # # es查询出的结果总量\n",
    "    total = query['hits']['total']['value']\n",
    "    print(total)\n",
    "    # # 游标用于输出es查询出的所有结果\n",
    "    # print(total)\n",
    "    scroll_id = query['_scroll_id']\n",
    "    # # 在发送查询请求的时候,就告诉ES需要使用游标,并定义每次返回数据量的大小\n",
    "    # # 定义一个list变量results用来存储数据结果,在代码中,可以另其为空list,即results=[],也可以先将返回结果\n",
    "    # # 的第一页存尽进来, 即results = query['hits']['hits']\n",
    "    # # 对于所有二级果数据写个分页加载到内存变量的循环\n",
    "    for i in range(0, int(total / 100) + 1):\n",
    "    #     # scroll参数必须制定否则会报错\n",
    "        query_scroll = es.scroll(scroll_id=scroll_id, scroll=\"5m\")['hits']['hits']\n",
    "        results += query_scroll\n",
    "    for res in results:\n",
    "        print(\"----开始:\"+res['_source']['content'])\n",
    "        predict_sentiment(res['_source']['content'])\n",
    "    # with open(\"./data.csv\", 'w', newline='', encoding=\"gbk\") as flow:\n",
    "    #     # 获取_source 下的所有字段名\n",
    "    #     names = results[0]['_source'].keys()\n",
    "    #     csv_writer = csv.writer(flow)\n",
    "    #     csv_writer.writerow(names)\n",
    "    #     for res in results:\n",
    "    #         csv_writer.writerow(res['_source'].values())\n",
    "    # print(\"done!\")"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'_index': 'user_message_list', '_type': '_doc', '_id': 'njTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '宝贝做工很好，剪裁合体，衣服大方，上身很舒适，料子也很好，穿上去特别舒服。', 'goodsId': '70222631638', 'guid': '808401343fa272a10a77d0131cb635a2', 'id': '14522466198', 'nickname': 'j***E', 'referenceTime': '2020-08-11 10:04:01', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'nzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服很好看，试穿过了，面料很舒服，摸起来质感很好。款式也很潮流，下水洗了没有掉色，没有任何色差', 'goodsId': '70222631638', 'guid': 'cd629cc8a5714129f7ac9c53a3743abb', 'id': '14522367387', 'nickname': 'j***I', 'referenceTime': '2020-08-11 14:43:56', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'oDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '宝贝很快就到货了，面料柔软，颜色很喜欢很鲜亮的，穿上显肤色的哦。穿上都被别人夸呢，很不错', 'goodsId': '70222631638', 'guid': '3885d79e9f56c3af1a8ae60173607cf5', 'id': '14522362447', 'nickname': 'j***m', 'referenceTime': '2020-08-11 14:37:03', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'oTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服面料柔软，穿着透气，做工也精细，没有多余线头，款式简单大方，颜色清爽，非常棒哦', 'goodsId': '70222631638', 'guid': 'ba6c29aacaa65362362075d40ad970a6', 'id': '14522356137', 'nickname': 'j***X', 'referenceTime': '2020-08-11 14:28:30', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'ojTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到了，没有异味，洗了没有变形，不褪色，穿起来很舒服。卖家的服务态度也很好', 'goodsId': '70222631638', 'guid': '6e4cd9003c9ebc684021e5795179f816', 'id': '14522354358', 'nickname': 'j***g', 'referenceTime': '2020-08-11 14:13:47', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'ozTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '宝贝收到了，穿起来非常的漂亮，版型设计的非常不错，面料很好，没有多余的线头，客服推荐的尺码很合适', 'goodsId': '70222631638', 'guid': '7da0bf3d7b2f2fdf9bac4a83f8ebab2f', 'id': '14522339406', 'nickname': 'j***f', 'referenceTime': '2020-08-11 14:05:02', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'pDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '裙子收到了，材质摸起来很舒服，做工也很精细，尺寸刚刚好，百搭的一款裙子 喜欢。', 'goodsId': '70222631638', 'guid': '7da0bf3d7b2f2fdfe5546261ba041b97', 'id': '14522339687', 'nickname': 'j***a', 'referenceTime': '2020-08-11 13:56:27', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'pTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙穿 上去亲肤舒适，上身效果不错，面料舒服价钱也不贵，洗了之后没有缩水的现象也不会掉色，穿在身上很好看', 'goodsId': '70222631638', 'guid': '97b497a8fb8d5ce55c3adb0d14b1f879', 'id': '14522330171', 'nickname': 'j***p', 'referenceTime': '2020-08-09 14:21:17', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'pjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服已经收到，穿着很舒服，款式是宽松的，颜色也很正，完全没有色差，穿上很显瘦哦！', 'goodsId': '70222631638', 'guid': '25e71bfd0e9d89e566674484415dcdb2', 'id': '14522332663', 'nickname': 'j***M', 'referenceTime': '2020-08-11 13:46:35', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'pzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '宝贝已经收到了，非常喜欢这个衣服，穿着很舒服。质量很好，也很好看，我很满意，下次还来本店购买', 'goodsId': '70222631638', 'guid': '38efacc1d0e9ab1afdcec3ea0e5d8d39', 'id': '14522318139', 'nickname': 'j***j', 'referenceTime': '2020-08-11 13:36:37', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'qDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服很好，非常不错的购物体验，穿着舒服，款式很好性价比很高，款式性大小合适，物美价廉，颜色很正。', 'goodsId': '70222631638', 'guid': '36ce9b2c62cb553834d148abb2171e5e', 'id': '14522315568', 'nickname': 'j***W', 'referenceTime': '2020-08-11 13:27:11', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'qTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到了哦，挺好的，颜色也挺好看，做工非常好哦，面料柔软舒适，尺码也是非常合适的哦，设计的非常合理，贴心，总之非常满意', 'goodsId': '70222631638', 'guid': '6f6ab41e01c24c2063bcfcccda86afcd', 'id': '14522308084', 'nickname': 'j***E', 'referenceTime': '2020-08-11 13:19:15', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'qjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '做工很可以，这样的价格能买到这质量非常行。还会来的，性价比很高整体感觉不错与商家描述一致', 'goodsId': '70222631638', 'guid': '40596910f0792ecea1006f03821b0210', 'id': '14522279927', 'nickname': 'j***I', 'referenceTime': '2020-08-11 11:36:53', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'qzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '裙子挺不错的，版型好看比想象中的好，舒适，不会起球，没有掉色，挺满意的', 'goodsId': '70222631638', 'guid': '3d32de8ba3e1edac8af911a4ce498ed4', 'id': '14522254354', 'nickname': 'j***n', 'referenceTime': '2020-08-11 10:54:04', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'rDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙收到啦，穿上非常好看，也没有色差，码数标准，做工很不错，价格跟质量成正比 卖家的服务态度也特别好主要质量真好', 'goodsId': '70222631638', 'guid': 'f024ed0585e3dfa7ac0525a1a5288876', 'id': '14522143847', 'nickname': 'j***A', 'referenceTime': '2020-08-11 10:43:06', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'rTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '已退回', 'goodsId': '70222631638', 'guid': '9e3b1ad08af3960471c87f28885517b4', 'id': '14521774802', 'nickname': 'j***e', 'referenceTime': '2020-08-02 16:57:16', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'rjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服和图片没色差，性价比高，穿上很合适，非常的显肤色，朋友都说我穿上显年轻了。一次愉快的购物！', 'goodsId': '70222631638', 'guid': '8afc4ee8cedc72f4b4cfeccb8033b056', 'id': '14519146364', 'nickname': 'j***r', 'referenceTime': '2020-08-10 11:31:46', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'rzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '挺好看，感觉穿上蛮大气的，简单大方得体，面料不扎人，很不错！', 'goodsId': '70222631638', 'guid': '40a1fe151a61b580388335b86dbeb536', 'id': '14519137151', 'nickname': 'j***j', 'referenceTime': '2020-08-10 12:29:03', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'sDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '宝贝收到啦，穿上非常好看，也没有色差，码数标准，做工很不错，价格跟质量成正比 卖家的服务态度也特别好', 'goodsId': '70222631638', 'guid': '6981298da77c8b5b3f645cda07d955ba', 'id': '14519123642', 'nickname': 'j***G', 'referenceTime': '2020-08-10 12:40:34', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'sTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '收到的宝贝不错，质量好，款式好看和描述的一样，码数标准，很合适，有档次。', 'goodsId': '70222631638', 'guid': '48673ab95214aa11f7ac9c53a3743abb', 'id': '14519120387', 'nickname': 'j***Y', 'referenceTime': '2020-08-10 12:50:18', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'sjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到了，款式简单时尚，穿着好看，面料柔软舒适，大小刚刚好，客服人员不错', 'goodsId': '70222631638', 'guid': '341a64f0c0d6e1f2932acd5aa26635b2', 'id': '14519112411', 'nickname': 'j***X', 'referenceTime': '2020-08-10 13:14:03', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'szTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到了，物流很快，穿起来很舒服，质量挺好的，很喜欢很满意，不错的一次购物体验、', 'goodsId': '70222631638', 'guid': 'aa69291ce15360e17bd4e3c44cfed3ff', 'id': '14519097905', 'nickname': 'j***v', 'referenceTime': '2020-08-10 11:22:23', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'tDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙面料舒适，是雪纺面料的，夏天穿挺合适的，美美哒的一件连衣裙，夏季这个颜色也是很百搭的，买的很值', 'goodsId': '70222631638', 'guid': 'c5bdf14618b196136f05027e28bef432', 'id': '14519051782', 'nickname': 'j***W', 'referenceTime': '2020-08-10 14:38:29', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'tTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙收到了，面料好，穿着特别合身，面料很柔软，做工还不错，没有多余的线头，非常满意，穿着很透气。', 'goodsId': '70222631638', 'guid': 'e6ba97bc1d0afe98af8355f581e91dba', 'id': '14519046950', 'nickname': 'j***I', 'referenceTime': '2020-08-10 14:28:23', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'tjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙版型超级不错特别的好勒，是我喜欢的版型，修身显瘦，也不想肚子，裙子的腰部是松紧的，很时尚，又好穿。', 'goodsId': '70222631638', 'guid': 'd157bfe8a5ab19120e5bfe3127eb87ac', 'id': '14519038432', 'nickname': 'j***o', 'referenceTime': '2020-08-10 14:16:15', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'tzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙收到了，非常漂亮，质量很好，没有色差，上身效果很不错，版型也很好看。', 'goodsId': '70222631638', 'guid': '2b7f872403acae29552d879b442f2e5a', 'id': '14519035231', 'nickname': 'j***t', 'referenceTime': '2020-08-10 14:03:30', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'uDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '实物和图片颜色一样，很舒服，手感好，回再来了。很飘逸，是雪纺的。', 'goodsId': '70222631638', 'guid': 'ab23dcf15d5def2804024f1ace7e2faf', 'id': '14519009684', 'nickname': 'j***T', 'referenceTime': '2020-08-10 13:41:40', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'uTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙质量很好，穿上大小合适。料摸起来很舒服，穿上吸汗透气，非常好的一次购物体验。夏天穿起来很飘逸。', 'goodsId': '70222631638', 'guid': '44342e4b14c7225084a4e3c5b3e3f6b7', 'id': '14519001752', 'nickname': 'j***N', 'referenceTime': '2020-08-10 13:31:24', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'ujTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '裙子料子不错，穿着舒适凉快，款式时尚大气，穿上分非常有气质。雪纺的。 红白色显白很飘逸。', 'goodsId': '70222631638', 'guid': '3079c712d7dca8666634e0e61f1ccc9f', 'id': '14518852651', 'nickname': 'j***R', 'referenceTime': '2020-08-10 13:03:10', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'uzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙好看，面料柔软细腻，穿着很好，设计的也很漂亮，下水洗了不掉色，大小合适很合身。', 'goodsId': '70222631638', 'guid': '3079c712d7dca8669332d764cdf33161', 'id': '14518852096', 'nickname': 'j***f', 'referenceTime': '2020-08-10 12:50:18', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'vDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙真的很不错，料子比较舒服，手感柔软舒适，做工比较精致，车线平整，细节处理的很好，版型也很好看。穿上很合适，价格也划算。', 'goodsId': '70222631638', 'guid': 'a6c3cd2470adf7d5db0fcff4a50c70e7', 'id': '14518844276', 'nickname': 'j***Z', 'referenceTime': '2020-08-10 12:40:32', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'vTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙收到了，非常漂亮，没有色差，跟卖家描述的一样，面料很不错，穿起来很舒服，透气，版型也很不错，穿着高大上。', 'goodsId': '70222631638', 'guid': 'b93120ea7d518fe8ea7cc90e53cfc308', 'id': '14518828058', 'nickname': 'j***E', 'referenceTime': '2020-08-10 12:29:03', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'vjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙材质面料一流，穿着非常舒服，摸上去很舒服，面料很不错，穿着也很显瘦，很优雅，尺码非常标准，没异味，也没多余的线头。', 'goodsId': '70222631638', 'guid': '7ecd63e184fdec68be2fc132217626dd', 'id': '14518832113', 'nickname': 'j***C', 'referenceTime': '2020-08-10 11:31:45', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'vzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙大小合适，穿着很舒服，洗了之后也没有掉色，做工还是挺好的，没有线头情况。雪纺的', 'goodsId': '70222631638', 'guid': 'c9d9b31c1ac7af4fb333239c63443732', 'id': '14518822449', 'nickname': 'j***z', 'referenceTime': '2020-08-10 11:22:22', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'wDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙版型我超满意，超喜欢，穿着很体面，是长裙款很飘逸。非常上档次', 'goodsId': '70222631638', 'guid': 'c65075d21b97bd2e646e47c50d73eaf3', 'id': '14518784334', 'nickname': 'j***l', 'referenceTime': '2020-08-10 14:53:28', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'wTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '打开就迫不及待地穿了一下，连衣裙做工精细，走线工整。尺码合适。 面料超级舒服，下水也没有锁水', 'goodsId': '70222631638', 'guid': 'c26c6ea82211c79077b6445d9c7a6813', 'id': '14518768417', 'nickname': 'j***a', 'referenceTime': '2020-08-10 14:38:37', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'wjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙面料柔软，雪纺连衣裙。上身很舒服 ，穿上不显胖，裙子时尚，以后还会关注。女盆友很喜欢', 'goodsId': '70222631638', 'guid': '08659a97ccd278e556bbb5798dcfc44f', 'id': '14518756810', 'nickname': 'j***S', 'referenceTime': '2020-08-10 14:28:29', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'wzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '裙子款式好看，没有色差，手感好，面料柔软，是雪纺穿起来非常舒服，特别洋气。特别的小仙女。显白', 'goodsId': '70222631638', 'guid': '97e855456108f00f1d62e3fa7b787cfb', 'id': '14518749427', 'nickname': 'j***U', 'referenceTime': '2020-08-10 14:16:42', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'xDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '第一次购买这个连衣裙。物流速度很快，很惊喜。试穿后非常合适，非常好的产品，下次还会再买！', 'goodsId': '70222631638', 'guid': '544597363cef6b6485fe2fdf7878320f', 'id': '14518737244', 'nickname': 'j***X', 'referenceTime': '2020-08-10 14:03:40', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'xTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '这个连衣裙面料透气性也挺好的，夏天穿下来很好 也特别的有型，穿着也挺好的，非常喜欢，我还考虑接着要不要再买。真的是非常不错。', 'goodsId': '70222631638', 'guid': 'f140753defebbc2ada1ee84cbe0d1c6c', 'id': '14518727153', 'nickname': 'j***P', 'referenceTime': '2020-08-10 13:41:47', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'xjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙物流很快，穿上很飘逸 料子很好，穿上很舒服，客服态度好，很正式，穿上很舒适，时尚潮流赞?', 'goodsId': '70222631638', 'guid': 'a454a5649a9daad6fa5efa4171d8c75c', 'id': '14518720105', 'nickname': 'j***z', 'referenceTime': '2020-08-09 13:22:30', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'xzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '物流很快，衣服收到挺有质感的，好看，款式很百搭，穿上面料也很舒服。', 'goodsId': '70222631638', 'guid': '969e26cf7fa2939866f30815578e70d2', 'id': '14515732798', 'nickname': 'j***f', 'referenceTime': '2020-08-09 15:59:09', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'yDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到了，面料很舒服穿上很合身，按照客服推荐的尺码买的，穿上正好。一次不错的选择。', 'goodsId': '70222631638', 'guid': '64e4aa2ce48db6955297b4212fa8ff64', 'id': '14515727274', 'nickname': 'j***h', 'referenceTime': '2020-08-09 15:46:05', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'yTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服真的很不错，质量好，穿上舒服，款式简简单单，已经推荐给朋友，还会再来。', 'goodsId': '70222631638', 'guid': '9727b9c0cb343f407f41448b8fb890ea', 'id': '14515713797', 'nickname': 'j***E', 'referenceTime': '2020-08-09 15:37:23', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'yjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙    喜欢赞，跟外面实体店的一样希望下次再光临本店哦，总之很近买的东西都很喜欢，喜欢的朋友赶快下手哦', 'goodsId': '70222631638', 'guid': '0a7d58a1c911ca1da063ac10b0b083dc', 'id': '14515646332', 'nickname': 'j***C', 'referenceTime': '2020-08-09 11:38:11', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'yzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '一下买了两件，连衣裙很好看，布料也挺好的，一点都不会透，穿着也舒服，很合身，整个人看着都很精神，感觉美美哒', 'goodsId': '70222631638', 'guid': '17cf07cf061713c406cac34de47b5aa2', 'id': '14515641313', 'nickname': 'j***m', 'referenceTime': '2020-08-09 12:59:41', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'zDTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙物流很可以，还可以也很好，对于这样的卖家的一次购物，店家服务态度十分好', 'goodsId': '70222631638', 'guid': '2977699781fbf80e08709423e49ca784', 'id': '14515618323', 'nickname': 'j***F', 'referenceTime': '2020-08-09 13:31:56', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'zTTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '太喜欢了，连衣裙面料很舒服，超级显瘦哦，质量很好，没有异味，很满意，物流很快。很仙', 'goodsId': '70222631638', 'guid': 'f31eff6b9354a0483ab36073714a3cb2', 'id': '14515610184', 'nickname': 'j***D', 'referenceTime': '2020-08-09 13:42:33', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'zjTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙收到了质量很好，很鲜肤色，没有多余线头面料特别舒服，裙子上身效果非常的合适。', 'goodsId': '70222631638', 'guid': 'db4637c0e6464e1597a67e294da2c655', 'id': '14515602483', 'nickname': 'j***W', 'referenceTime': '2020-08-09 13:52:25', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': 'zzTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '连衣裙质量很满意，做工也很精细，材质很好，特别的舒服，上身，效果也很不错，值得推荐\\n细节做工：没有多余的线头。', 'goodsId': '70222631638', 'guid': '55db640191bb3155b2df1e7dfc66755f', 'id': '14515590677', 'nickname': 'j***s', 'referenceTime': '2020-08-09 14:09:32', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '0DTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '裙子面料很舒服，做工精细，走线工整，价格实惠，很显瘦，长度刚刚好，上身效果很满意。', 'goodsId': '70222631638', 'guid': '8812f5bebd4b158b786ce751805c0ec6', 'id': '14515579861', 'nickname': 'j***B', 'referenceTime': '2020-08-09 14:21:17', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '0TTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服真的是相当的棒，做工款式新颖舒服，尺寸很准确，衣服基本没有色差。穿上显肤色颜色正而且很优雅。', 'goodsId': '70222631638', 'guid': '62b0e7d46428ae2f85fe2fdf7878320f', 'id': '14515531244', 'nickname': 'j***m', 'referenceTime': '2020-08-09 15:59:10', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '0jTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到啦，摸着很舒服，洗了也没有掉色变形什么的，而且很合身，版型很好看。不错的一次购物', 'goodsId': '70222631638', 'guid': 'e3df9fc42372cfaba230b46f9660a3b2', 'id': '14515423268', 'nickname': 'j***V', 'referenceTime': '2020-08-09 15:18:26', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '0zTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '质量很好，穿到身上很舒服，尺码很合适，手感好，合身，穿着好看，物流也特别快', 'goodsId': '70222631638', 'guid': 'cea12b55957f6086affc88793627a82f', 'id': '14515395008', 'nickname': 'j***G', 'referenceTime': '2020-08-09 15:07:15', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '1DTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '裙子收到了，不错，颜色很正，面料材质很好，很舒服，样子很好看，物流快，好评！', 'goodsId': '70222631638', 'guid': '9b7b75ec6aa40ad1e1ac62292b40e6b7', 'id': '14515390161', 'nickname': 'j***T', 'referenceTime': '2020-08-09 14:57:07', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '1TTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到了，大小很合适，穿着很舒服，面料也是相当的不错，特别的好。没啥色差，还是不错的', 'goodsId': '70222631638', 'guid': 'acec796e55193111f4a0f93e67926ad4', 'id': '14515369256', 'nickname': 'j***K', 'referenceTime': '2020-08-09 14:38:43', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '1jTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到啦，摸着很舒服，洗了也没有掉色变形什么的，而且很合身，版型很好看。不错的一次购物', 'goodsId': '70222631638', 'guid': '764985c57dd554b4d0606e4968f6388e', 'id': '14515367042', 'nickname': 'j***e', 'referenceTime': '2020-08-09 14:30:08', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '1zTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服真的是相当的棒，做工款式新颖舒服，尺寸很准确，衣服基本没有色差。穿上显肤色颜色正而且很优雅。', 'goodsId': '70222631638', 'guid': 'dc6351a80472a6460fa4b7e08a6e3faf', 'id': '14515356502', 'nickname': 'j***Q', 'referenceTime': '2020-08-09 14:09:32', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '2DTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '衣服收到了，是我想要的那种颜色，穿上很舒服很有质感，细节处理的很到位。快递也很快非常满意。', 'goodsId': '70222631638', 'guid': 'e7d5f65fffe9c226b240a06ac721a279', 'id': '14515350225', 'nickname': 'j***j', 'referenceTime': '2020-08-09 13:52:24', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}, {'_index': 'user_message_list', '_type': '_doc', '_id': '2TTU4XMBAWEK-eYnpV1o', '_score': 2.1179469, '_source': {'content': '这个衣服很好看，面料很棒穿着很舒服，比较休闲舒适，穿着很显瘦。', 'goodsId': '70222631638', 'guid': 'ece16c324f8ad5ae54ce4cbc68341df2', 'id': '14515336319', 'nickname': 'j***y', 'referenceTime': '2020-08-09 13:42:33', 'score': 5, 'userImage': 'misc.360buyimg.com/user/myjd-2015/css/i/peisong.jpg'}}]\n",
      "60\n",
      "----开始:宝贝做工很好，剪裁合体，衣服大方，上身很舒适，料子也很好，穿上去特别舒服。\n",
      "是一例正面评价 output=0.93\n",
      "----开始:衣服很好看，试穿过了，面料很舒服，摸起来质感很好。款式也很潮流，下水洗了没有掉色，没有任何色差\n",
      "是一例正面评价 output=0.88\n",
      "----开始:宝贝很快就到货了，面料柔软，颜色很喜欢很鲜亮的，穿上显肤色的哦。穿上都被别人夸呢，很不错\n",
      "是一例正面评价 output=0.95\n",
      "----开始:衣服面料柔软，穿着透气，做工也精细，没有多余线头，款式简单大方，颜色清爽，非常棒哦\n",
      "是一例负面评价 output=0.09\n",
      "----开始:衣服收到了，没有异味，洗了没有变形，不褪色，穿起来很舒服。卖家的服务态度也很好\n",
      "是一例负面评价 output=0.07\n",
      "----开始:宝贝收到了，穿起来非常的漂亮，版型设计的非常不错，面料很好，没有多余的线头，客服推荐的尺码很合适\n",
      "是一例正面评价 output=0.94\n",
      "----开始:裙子收到了，材质摸起来很舒服，做工也很精细，尺寸刚刚好，百搭的一款裙子 喜欢。\n",
      "是一例正面评价 output=0.91\n",
      "----开始:连衣裙穿 上去亲肤舒适，上身效果不错，面料舒服价钱也不贵，洗了之后没有缩水的现象也不会掉色，穿在身上很好看\n",
      "是一例正面评价 output=0.65\n",
      "----开始:衣服已经收到，穿着很舒服，款式是宽松的，颜色也很正，完全没有色差，穿上很显瘦哦！\n",
      "是一例正面评价 output=0.89\n",
      "----开始:宝贝已经收到了，非常喜欢这个衣服，穿着很舒服。质量很好，也很好看，我很满意，下次还来本店购买\n",
      "是一例正面评价 output=0.93\n",
      "----开始:衣服很好，非常不错的购物体验，穿着舒服，款式很好性价比很高，款式性大小合适，物美价廉，颜色很正。\n",
      "是一例正面评价 output=0.94\n",
      "----开始:衣服收到了哦，挺好的，颜色也挺好看，做工非常好哦，面料柔软舒适，尺码也是非常合适的哦，设计的非常合理，贴心，总之非常满意\n",
      "是一例正面评价 output=0.94\n",
      "----开始:做工很可以，这样的价格能买到这质量非常行。还会来的，性价比很高整体感觉不错与商家描述一致\n",
      "是一例正面评价 output=0.94\n",
      "----开始:裙子挺不错的，版型好看比想象中的好，舒适，不会起球，没有掉色，挺满意的\n",
      "是一例正面评价 output=0.92\n",
      "----开始:连衣裙收到啦，穿上非常好看，也没有色差，码数标准，做工很不错，价格跟质量成正比 卖家的服务态度也特别好主要质量真好\n",
      "是一例正面评价 output=0.95\n",
      "----开始:已退回\n",
      "是一例负面评价 output=0.26\n",
      "----开始:衣服和图片没色差，性价比高，穿上很合适，非常的显肤色，朋友都说我穿上显年轻了。一次愉快的购物！\n",
      "是一例正面评价 output=0.93\n",
      "----开始:挺好看，感觉穿上蛮大气的，简单大方得体，面料不扎人，很不错！\n",
      "是一例正面评价 output=0.93\n",
      "----开始:宝贝收到啦，穿上非常好看，也没有色差，码数标准，做工很不错，价格跟质量成正比 卖家的服务态度也特别好\n",
      "是一例正面评价 output=0.94\n",
      "----开始:收到的宝贝不错，质量好，款式好看和描述的一样，码数标准，很合适，有档次。\n",
      "是一例正面评价 output=0.93\n",
      "----开始:衣服收到了，款式简单时尚，穿着好看，面料柔软舒适，大小刚刚好，客服人员不错\n",
      "是一例正面评价 output=0.92\n",
      "----开始:衣服收到了，物流很快，穿起来很舒服，质量挺好的，很喜欢很满意，不错的一次购物体验、\n",
      "是一例正面评价 output=0.94\n",
      "----开始:连衣裙面料舒适，是雪纺面料的，夏天穿挺合适的，美美哒的一件连衣裙，夏季这个颜色也是很百搭的，买的很值\n",
      "是一例正面评价 output=0.90\n",
      "----开始:连衣裙收到了，面料好，穿着特别合身，面料很柔软，做工还不错，没有多余的线头，非常满意，穿着很透气。\n",
      "是一例正面评价 output=0.94\n",
      "----开始:连衣裙版型超级不错特别的好勒，是我喜欢的版型，修身显瘦，也不想肚子，裙子的腰部是松紧的，很时尚，又好穿。\n",
      "是一例正面评价 output=0.93\n",
      "----开始:连衣裙收到了，非常漂亮，质量很好，没有色差，上身效果很不错，版型也很好看。\n",
      "是一例正面评价 output=0.94\n",
      "----开始:实物和图片颜色一样，很舒服，手感好，回再来了。很飘逸，是雪纺的。\n",
      "是一例正面评价 output=0.93\n",
      "----开始:连衣裙质量很好，穿上大小合适。料摸起来很舒服，穿上吸汗透气，非常好的一次购物体验。夏天穿起来很飘逸。\n",
      "是一例正面评价 output=0.93\n",
      "----开始:裙子料子不错，穿着舒适凉快，款式时尚大气，穿上分非常有气质。雪纺的。 红白色显白很飘逸。\n",
      "是一例正面评价 output=0.91\n",
      "----开始:连衣裙好看，面料柔软细腻，穿着很好，设计的也很漂亮，下水洗了不掉色，大小合适很合身。\n",
      "是一例正面评价 output=0.93\n",
      "----开始:连衣裙真的很不错，料子比较舒服，手感柔软舒适，做工比较精致，车线平整，细节处理的很好，版型也很好看。穿上很合适，价格也划算。\n",
      "是一例正面评价 output=0.95\n",
      "----开始:连衣裙收到了，非常漂亮，没有色差，跟卖家描述的一样，面料很不错，穿起来很舒服，透气，版型也很不错，穿着高大上。\n",
      "是一例正面评价 output=0.94\n",
      "----开始:连衣裙材质面料一流，穿着非常舒服，摸上去很舒服，面料很不错，穿着也很显瘦，很优雅，尺码非常标准，没异味，也没多余的线头。\n",
      "是一例正面评价 output=0.91\n",
      "----开始:连衣裙大小合适，穿着很舒服，洗了之后也没有掉色，做工还是挺好的，没有线头情况。雪纺的\n",
      "是一例正面评价 output=0.78\n",
      "----开始:连衣裙版型我超满意，超喜欢，穿着很体面，是长裙款很飘逸。非常上档次\n",
      "是一例正面评价 output=0.91\n",
      "----开始:打开就迫不及待地穿了一下，连衣裙做工精细，走线工整。尺码合适。 面料超级舒服，下水也没有锁水\n",
      "是一例负面评价 output=0.19\n",
      "----开始:连衣裙面料柔软，雪纺连衣裙。上身很舒服 ，穿上不显胖，裙子时尚，以后还会关注。女盆友很喜欢\n",
      "是一例正面评价 output=0.90\n",
      "----开始:裙子款式好看，没有色差，手感好，面料柔软，是雪纺穿起来非常舒服，特别洋气。特别的小仙女。显白\n",
      "是一例正面评价 output=0.86\n",
      "----开始:第一次购买这个连衣裙。物流速度很快，很惊喜。试穿后非常合适，非常好的产品，下次还会再买！\n",
      "是一例正面评价 output=0.93\n",
      "----开始:这个连衣裙面料透气性也挺好的，夏天穿下来很好 也特别的有型，穿着也挺好的，非常喜欢，我还考虑接着要不要再买。真的是非常不错。\n",
      "是一例正面评价 output=0.95\n",
      "----开始:连衣裙物流很快，穿上很飘逸 料子很好，穿上很舒服，客服态度好，很正式，穿上很舒适，时尚潮流赞?\n",
      "是一例正面评价 output=0.95\n",
      "----开始:物流很快，衣服收到挺有质感的，好看，款式很百搭，穿上面料也很舒服。\n",
      "是一例正面评价 output=0.91\n",
      "----开始:衣服收到了，面料很舒服穿上很合身，按照客服推荐的尺码买的，穿上正好。一次不错的选择。\n",
      "是一例正面评价 output=0.94\n",
      "----开始:衣服真的很不错，质量好，穿上舒服，款式简简单单，已经推荐给朋友，还会再来。\n",
      "是一例正面评价 output=0.94\n",
      "----开始:连衣裙    喜欢赞，跟外面实体店的一样希望下次再光临本店哦，总之很近买的东西都很喜欢，喜欢的朋友赶快下手哦\n",
      "是一例正面评价 output=0.95\n",
      "----开始:一下买了两件，连衣裙很好看，布料也挺好的，一点都不会透，穿着也舒服，很合身，整个人看着都很精神，感觉美美哒\n",
      "是一例正面评价 output=0.94\n",
      "----开始:连衣裙物流很可以，还可以也很好，对于这样的卖家的一次购物，店家服务态度十分好\n",
      "是一例正面评价 output=0.94\n",
      "----开始:太喜欢了，连衣裙面料很舒服，超级显瘦哦，质量很好，没有异味，很满意，物流很快。很仙\n",
      "是一例正面评价 output=0.92\n",
      "----开始:连衣裙收到了质量很好，很鲜肤色，没有多余线头面料特别舒服，裙子上身效果非常的合适。\n",
      "是一例正面评价 output=0.87\n",
      "----开始:连衣裙质量很满意，做工也很精细，材质很好，特别的舒服，上身，效果也很不错，值得推荐\n",
      "细节做工：没有多余的线头。\n",
      "是一例正面评价 output=0.94\n",
      "----开始:裙子面料很舒服，做工精细，走线工整，价格实惠，很显瘦，长度刚刚好，上身效果很满意。\n",
      "是一例正面评价 output=0.94\n",
      "----开始:衣服真的是相当的棒，做工款式新颖舒服，尺寸很准确，衣服基本没有色差。穿上显肤色颜色正而且很优雅。\n",
      "是一例正面评价 output=0.90\n",
      "----开始:衣服收到啦，摸着很舒服，洗了也没有掉色变形什么的，而且很合身，版型很好看。不错的一次购物\n",
      "是一例正面评价 output=0.93\n",
      "----开始:质量很好，穿到身上很舒服，尺码很合适，手感好，合身，穿着好看，物流也特别快\n",
      "是一例正面评价 output=0.90\n",
      "----开始:裙子收到了，不错，颜色很正，面料材质很好，很舒服，样子很好看，物流快，好评！\n",
      "是一例正面评价 output=0.91\n",
      "----开始:衣服收到了，大小很合适，穿着很舒服，面料也是相当的不错，特别的好。没啥色差，还是不错的\n",
      "是一例正面评价 output=0.95\n",
      "----开始:衣服收到啦，摸着很舒服，洗了也没有掉色变形什么的，而且很合身，版型很好看。不错的一次购物\n",
      "是一例正面评价 output=0.93\n",
      "----开始:衣服真的是相当的棒，做工款式新颖舒服，尺寸很准确，衣服基本没有色差。穿上显肤色颜色正而且很优雅。\n",
      "是一例正面评价 output=0.90\n",
      "----开始:衣服收到了，是我想要的那种颜色，穿上很舒服很有质感，细节处理的很到位。快递也很快非常满意。\n",
      "是一例正面评价 output=0.93\n",
      "----开始:这个衣服很好看，面料很棒穿着很舒服，比较休闲舒适，穿着很显瘦。\n",
      "是一例正面评价 output=0.90\n"
     ]
    }
   ],
   "source": [
    "Form_es_to_excel(\"user_message_list\",100)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}